<?php

namespace app\admin\controller;

use app\admin\model\RoleModel;
use think\Controller;
use think\Db;
use think\Request;
use think\Session;

class Base extends Controller
{
    /*
     * 初始化操作
     */
    public function _initialize()
    {
        //取出seession的值
        $admin_id=Session::get("admin_id");
        $adminInfo=Db::name("admin")
            ->where(array("id"=>$admin_id))
            ->find();
        $url=getActionUrl();
        //日志记录表
        $name=$adminInfo["names"];
        $insert_data=array();
        $insert_data["action"]=$url;
        $insert_data["name"]=$name;
        $insert_data["time"]=time();
        Db::name("operation")->insert($insert_data);

        if (empty($admin_id)){
          $this->redirect("admin/login/login");
        }else{
            $adminInfo=Db::name("admin")
                ->where(array("id"=>$admin_id))
                ->find();
        }
        //取出角色
        $role=Db::name("auth_role")
            ->where('role_id',$adminInfo["role_id"])
            ->field('role_name')
            ->find();
        //检查该方法是否添加了权限方法
        $is_action=Db::name("auth_menu")
            ->where('url',$url)
            ->find();

        //过滤首页和欢迎页
        if (empty($is_action) && !in_array($url,array('admin/index/index','admin/index/welcome','admin/login/login'))){
             if (request()->isPost()){
                $this->error('抱歉，请先添加权限方法!');
            }else{
                echo "抱歉，请先添加权限方法!";exit;
            }
           //$this->error("请先添加权限方法");
        }
        //获取当前管理员是否有当前进去的方法的权限
        $url=getActionUrl();
        $roles=new RoleModel();
        $auth=$roles->getAuthInfo($adminInfo["role_id"]);
        if ($auth==NULL){
            if (request()->isPost()){
                $this->error('抱歉，您没有操作权限!');
            }else{
                echo "抱歉，您没有操作权限!";exit;
            }
        //    $this->error("请给改方法分配权限");
//            echo '<script>alert("没有权限111");请联系管理员</script>';exit;
        }
        $auth_array=array();
        foreach ($auth as $key=>$value){
            $auth_array[]=strtolower($value['url']);
        }
        //过滤首页和欢迎页
//        var_dump($url);var_dump($auth_array);
        if (!in_array($url,array('admin/index/index','admin/index/welcome'))){
            if (!in_array($url,$auth_array)){
                if (request()->isPost()){
                $this->error('抱歉，您没有操作权限!');
                }else{
                    echo "抱歉，您没有操作权限!";exit;
                }
            }
        }
        //获取当前用户可以访问的菜单
        $menuInfo=$roles->getMenuInfo($adminInfo["role_id"]);
        if ($menuInfo==NULL){
             if (request()->isPost()){
                $this->error('抱歉，您没有操作权限!');
            }else{
                echo "抱歉，您没有操作权限!";exit;
            }
        }
        $this->assign('menuInfo',$menuInfo);
        $this->assign('admin',$adminInfo["names"]);
        $this->assign('role',$role);
        $this->assign('adminInfo',json_encode($adminInfo));
        parent::_initialize(); // TODO: Change the autogenerated stub

    }

    public function clear(){
        if (delete_dir_file(CACHE_PATH) || delete_dir_file(TEMP_PATH)) {
            $this->success('清除缓存成功');
        } else {
            $this->error('清除缓存失败');
        }
    }

}
